#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
//QDial旋钮控件-示例
//通过旋钮来调节窗口的透明度
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    dial1=new QDial(this);
    dial1->setGeometry(50,50,300,300);
    dial1->setValue(1);//持有的数值
    dial1->setMinimum(0);//设置最大值
    dial1->setMaximum(100);//设置最小值
    dial1->setSingleStep(1);//设置方向键步长
    dial1->setPageStep(2);//设置pageUp/pageDown时的步长
    dial1->setSliderPosition(100);//设置旋钮显示的初始位置
    dial1->setTracking(true);//设置旋钮的外观会跟着数值的变化而变化
    dial1->setWrapping(true);//设置旋钮可以套圈，允许循环调整
    dial1->setNotchesVisible(true);//显示刻度线
    dial1->setNotchTarget(10);//设置刻度线的疏密程度

    dial2=new QDial(this);
    dial2->setGeometry(400,50,300,300);
    dial2->setMinimum(0);//最小值
    dial2->setMaximum(100);//最大值
    dial2->setWrapping(true);//设置可循环调整
    dial2->setNotchesVisible(true);//显示刻度线
    dial2->setNotchTarget(10);//设置旋钮刻度线疏密程度
    dial2->setSliderPosition(50);//设置旋钮初始位置
    dial2->setValue(50);//设置持有数值
    //当前旋钮持有数值和初始位置作用类似

    //当旋钮的数值发生变化时，修改窗口的透明度
    connect(dial2,&QDial::valueChanged,this,&Widget::handler);

/*
 * value属性：持有的数值
 * minimum属性：最小值
 * maximum属性：最大值
 * singleStep属性：按下方向键时，数值变化的步长
 * pageStep属性：按下pageUp/pageDown时，数值变化的步长
 * sliderPosition属性：界面上旋钮显示的初始位置
 * tracking属性：旋钮的外观是否会跟踪数值变化，默认为true
 * wrapping属性：是否允许循环调整。
 *      即数值如果超过最大值，是否允许不改变方向回到最小值。调整过程中是否能够套圈
 * notchesVisible属性：是否显示刻度线
 * notchTarget属性：刻度线的疏密程度，数字越大，刻度线越稀疏
 *
*/
}

Widget::~Widget()
{
    delete ui;
}

void Widget::handler(int num)
{
    qDebug()<<QString("当前旋钮数值:")<<num;
    //num：当前旋钮的数值
    float f=(float)num/100.0;
    //根据旋钮的数值设置透明度
    this->setWindowOpacity(f);
}

